package com.ruoyi.controller;

import com.ruoyi.domain.Device;
import com.ruoyi.service.DeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
/*
  @ClassName: UserDeviceController
 * @Description:
 * @author: lifei
 * @date: 2025年02月26日 14:56
 */

/**
 * 用户设备管理的Controller类，提供RESTful API接口。
 *
 * @author lifei
 */
@RestController
@RequestMapping("/kangyue/userdevice")
public class DeviceController {

    private final DeviceService userDeviceService;

    @Autowired
    public DeviceController(DeviceService userDeviceService) {
        this.userDeviceService = userDeviceService;
    }

    /**
     * 添加新的用户设备记录。
     *
     * @param userDevice 设备信息
     */
    @PostMapping
    public void addUserDevice(@RequestBody Device userDevice) {
        userDeviceService.addUserDevice(userDevice);
    }

    /**
     * 根据设备ID删除设备记录。
     *
     * @param deviceId 设备ID
     */
    @DeleteMapping("/{deviceId}")
    public void removeUserDevice(@PathVariable Long deviceId) {
        userDeviceService.removeUserDevice(deviceId);
    }

    /**
     * 更新用户设备信息。
     *
     * @param deviceId   设备ID
     * @param userDevice 更新后的设备信息
     */
    @PutMapping("/{deviceId}")
    public void updateUserDevice(@PathVariable Long deviceId, @RequestBody Device userDevice) {
        userDevice.setDeviceId(deviceId);
        userDeviceService.updateUserDevice(userDevice);
    }

    /**
     * 根据设备ID获取用户设备信息
     *
     * @param deviceId 设备ID
     * @return 用户设备信息
     */
    @GetMapping("/deviceInfo/{deviceId}")
    public Device getUserDeviceById(@PathVariable Long deviceId) {
        return userDeviceService.getUserDeviceById(deviceId);
    }

    /**
     * 根据用户ID获取所有设备信息
     *
     * @param userId 用户ID
     * @return 用户设备列表
     */
    @GetMapping("/{userId}")
    public List<Device> getUserDevicesByUserId(@PathVariable Long userId) {
        return userDeviceService.getUserDevicesByUserId(userId);
    }
}

